package com.ma.test

import android.content.Intent
import android.graphics.Bitmap
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Button
import android.widget.ImageView
import androidx.activity.ComponentActivity
import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

class FourthActivity : ComponentActivity() {

    // 相机请求码（私有常量，避免外部访问）
    private val REQUEST_IMAGE_CAPTURE = 1

    // 声明控件变量
    private lateinit var buttonTakePhoto: Button
    private lateinit var imageViewPhoto: ImageView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 启用边缘到边缘显示（适配全面屏）
        enableEdgeToEdge()
        // 加载布局文件
        setContentView(R.layout.activity_fourth)

        // 初始化控件
        initViews()

        // 设置按钮点击事件：调用相机
        buttonTakePhoto.setOnClickListener {
            dispatchTakePictureIntent()
        }

        // 处理系统Insets（避免内容被状态栏/导航栏遮挡）
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.LinearLayout2)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }
    }

    /**
     * 初始化布局控件
     */
    private fun initViews() {
        buttonTakePhoto = findViewById(R.id.button_take_photo)
        imageViewPhoto = findViewById(R.id.imageView_photo)
    }

    /**
     * 发送隐式Intent调用系统相机
     */
    private fun dispatchTakePictureIntent() {
        // 创建启动相机的隐式Intent（动作：拍照）
        val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
        // 检查设备是否有能处理该Intent的应用（即是否有相机）
        if (takePictureIntent.resolveActivity(packageManager) != null) {
            // 启动相机，等待返回结果（请求码用于识别回调）
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)
        }
    }

    /**
     * 处理相机返回的结果
     */
    @Deprecated("Deprecated in Java")
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        // 验证请求码和结果是否正确（拍照成功）
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            // 从Intent中获取拍照的缩略图（使用空安全转型）
            val imageBitmap = data?.extras?.get("data") as? Bitmap
            // 非空判断后显示图片
            imageBitmap?.let {
                imageViewPhoto.setImageBitmap(it)
            }
        }
    }
}